home *** CD-ROM | disk | FTP | other *** search
-
- | User Document for SpiroDraw06 for the
- | Commodore AMIGA "family" of computers. 94-06-16
-
- | Lines marked with "|" are additions or changes
- | in this document from the SpiroDraw05 documentation.
-
- | PLEASE NOTE: "SpiroDraw06" will be the FINAL version under
- | this name. Please look for "EyeCandy01" or
- | later versions (eg. "EyeCandy02" , etc.)
- | which will contain SpiroDraw06 functionality
- | and (as the name hopefully implies) will
- | also have the capability of generating
- | various other kinds of designs. Any future
- | enhancements to the SpiroDraw functionality
- | will be found ONLY my new program, "EyeCandy".
-
- I. What is this program and who wrote the thing?
- ------------------------------------------------
-
- SpiroDraw is a program that simulates the spiral drawing
- child's toy. It is almost as rewarding to watch the design being
- drawn by the computer as I remember it being to actually draw
- the design yourself, using the pins, and wheels and everything.
- It is certainly more accurate since the computer does not have
- to worry about holding all the wheels and guides perfectly still
- while winding the drawing wheel around inside or outside the
- guide wheel. If you have ever used this toy then I am sure
- you know what I mean!
-
- | This program is an update from Rev 05. Slider gadgets in the
- | "Set Data..." window have been lengthened in the HI-RES screen
- | to make them easier to "grab" with the mouse.
-
- | SpiroDraw06 has been compiled with ACE (c)David Benn
- on an Amiga A2000HD (running OS 2.1).
-
- If you get any enjoyment or productive use from this program,
- drop me a line. I'd like to hear from you (if you REALLY like
- it, stick a little $ (how about $5.00 US) in the envelope - please!).
- Thanks go to W. Hagan who was the first send some $ my way.
- He has restored my faith in the "shareware" concept!
-
- Charles E. Kenney, II
- 4 Burbank Circle
- Framingham, MA 01701
- USA
- phone: (508) 877-5959
- or: (508) 877-4771
-
- If you send me a disk and a stamped self-addressed disk mailer,
- I will also send you the latest version of "SpiroDraw" and the
- source code along with any other little ditties I come up with.
-
- This program may be freely distributed as long as this document
- accompanies the program AND no more than a _small_ fee is charged
- for copying and or distribution.
-
- Thanks.
- -ck.
-
- P.S. Thanks again to David Benn for his wonderful compiler, "ACE".
-
-
- II. Program Set-up and Menu Descriptions
- ----------------------------------------
-
- "SpiroDraw" starts with 8 default settings (See "Last" gadget below)
- for SpiroDraw designs so you can see immediately what "SpiroDraw"
- can do. Following are descriptions of the various menus and the
- resultant actions:
-
- The "Project" menu contains the "standard" Load and Save functions:
-
- Load - The user may load data for a previously saved design.
- Data files for SpiroDraw always have a ".spd" extension.
- If the user does not include a ".spd" file extension,
- "SpiroDraw" adds it automatically.
- The current data is "backed-up" before the data is
- loaded (See "Last" gadget above).
- "LIBS:arp.library" must be installed on WB 1.3 systems
- in order for the "Load" MENU item to function.
-
- Save - The user may save data for a design if desired.
- If the user does not include a ".spd" file extension,
- "SpiroDraw" adds it automatically.
- "LIBS:arp.library" must be installed on WB 1.3 systems
- in order for the "Save" MENU item to function.
-
- Draw - Draws the SpiroDraw design for the data and other
- parameters currently in effect for "SpiroDraw".
- The drawing of the design may be interrupted with the
- famous 'CTRL-C' keys or by clicking the Left Mouse Button.
-
- About - A little message about SpiroDraw and its author.
-
- Quit - Well... This is how to exit "SpiroDraw"!
-
-
- The "Design" menu contains all the functions
- the user needs to set the design parameters:
-
- Set Data... - Invokes a screen which allows the user to specify
- the three "size" parameters for the SpiroDraw
- design: Guide Ring, Drawing Wheel and Pen-Hole
- (see "A few words about "SpiroDraw"" below for a
- description of these).
- Clicking on the "In/Out" gadget cycles the placement
- of the Drawing Wheel to inside-only, outside-only or
- both on the Guide Ring.
- Clicking on the "Last" gadget "recalls" the last
- data from the "design buffer". The design buffer
- is capable of holding 8 sets of design data -
- (Guide Ring, Drawing Wheel and Pen-Hole parameters).
- When the user clicks on this gadget, the previous
- data in use before the current data is placed into
- the current data and the other 7 sets of data are
- "bubbled-up", with the current data being "sent down"
- to the 8th set of data. Note that any time the user
- modifies the current data by loading new data from
- disk, by exiting the "Set Data..." window after
- making changes, or by selecting the "Random" gadget,
- (see below), the current data is "backed-up" to the
- "1st" buffer, the "1st" to the "2nd", the "2nd" to
- the "3rd", etc. The "8th" set of data simply gets
- "pushed off the cliff" and is lost forever.
- Clicking on the "Random" gadget randomizes the design
- sizes for the Guide Ring, Drawing Wheel and Pen-hole.
- The current data is "backed-up" before the data is
- randomized (See "Last" gadget description above).
- Clicking on the "Done" gadget exits this function
- and the user is asked whether or not to draw the
- new design using the new design parameters.
-
- Wheel Inside - If this Menu item does not have the "check-mark"
- then the "check-mark" is placed in the menu and
- "SpiroDraw" will place the Drawing Wheel inside
- the Guide Ring for subsequent SpiroDraw designs.
- If this Menu item does have the "check-mark"
- then the "check-mark" is removed from the menu
- and "SpiroDraw" will not place the Drawing Wheel
- inside the Guide Ring for subsequent SpiroDraws.
- "SpiroDraw" will also automatically "check-mark"
- the "Wheel Outside" menu if the "Wheel Inside"
- menu is UN-check-marked.
-
- Wheel Outside - If this Menu item does not have the "check-mark"
- then the "check-mark" is placed in the menu and
- "SpiroDraw" will place the Drawing Wheel outside
- the Guide Ring for subsequent SpiroDraws.
- If this Menu item does have the "check-mark"
- then the "check-mark" is removed from the menu
- and "SpiroDraw" will not place the Drawing Wheel
- outside the Guide Ring for subsequent SpiroDraws.
- "SpiroDraw" will also automatically "check-mark"
- the "Wheel Inside" menu if the "Wheel Outside"
- menu is UN-check-marked.
-
- Detail... - Invokes a window which allows the user to specify
- how detailed the drawn design will be. Clicking
- on the "Next" gadget cycles through all possible
- choices (each selection also causes "SpiroDraw" to
- take progressively longer to draw the design):
-
- DOTTY - plots dots at visible intervals rather than
- drawing a continuous line while the design
- is being drawn (dots may be connected with
- a line between each dot - see the description
- for the "Connect Dots" menu item below).
-
- SKETCHY - plots dots at smaller intervals than "DOTTY"
-
- COARSE - plots dots at _really_ small intervals.
-
- FINE - plots dots so close together that they are
- a continuous line when "SpiroDraw" draws.
-
- Connect Dots - The user may "check-mark" this menu item to connect
- the dots that are plotted by "SpiroDraw" with a line
- to give the design a continuous-line appearance.
- This menu item is automatically disabled if the user
- selects "FINE" in the "Detail..." menu above since
- the design will already have a continuous appearance.
-
- Clear Canvas - The user may "check-mark" this menu item to clear
- the drawing "canvas" before drawing each design.
- If this menu item is not "check-marked" then many
- designs can be drawn "on top of" each other.
-
- The "Preferences" menu contains the following functions:
-
- Ask Save - Any time data is changed in "SpiroDraw", the user is
- asked whether or not to save the "old" data if this
- menu item is "check-marked". "UN-check-marking"
- this menu item stops "SpiroDraw" from asking.
- It _can_ be annoying. "SpiroDraw" _always_ asks
- the user whether to save the new data (if it has
- been changed) when the "Quit" menu item is selected,
- regardless of the "check-mark" status of this menu item.
- "LIBS:arp.library" must be installed on WB 1.3 systems
- in order for the "Ask Save" MENU item to be enabled
- (See also "Load" and "Save" above).
-
- Show Activity - When this menu item is "check-marked", a running
- '% completed' is displayed in the upper left corner
- of the 'drawing window'. This is done to show that
- "SpiroDraw" is "doing something" and to give the user
- an idea of how long it will take to draw the design.
- It is difficult to see the design actually being
- drawn sometimes if the Pen-Hole value is very near
- zero or if the sizes of the Guide Ring and the Drawing
- Wheel are nearly equal. There are instances when the
- "% completed" message would ruin the appearance of
- the design so to avoid this, the user may elect to
- "UN-check-mark" this "Show Activity" menu item.
-
- Visual Round
- Screen Round - This is a "cycling menu" function. Each time
- this menu item is selected the function is
- "swapped" to the other selection,
- "Visual Round" to "Screen Round" and vice versa.
-
- If the user selects "Visual Round", the design will be
- drawn with a perfectly circular appearance on the screen.
- If the user selects "Screen Round", the design will be
- drawn with a slightly oval appearance on the screen, but
- this is a useful selection if the design is "saved" as
- an IFF file (using a "screen-capture-to-IFF-file" program
- and then imported into a paint package capable of animation.
- Once this is done, the design can be rotated while still
- maintaining its "roundness". This has been used successfully
- with DPaint.
-
- Resolution... - Invokes a window which allows the user to specify
- different screen resolutions. Clicking on the
- "Next" gadget cycles through all possible choices:
-
- If the user selects "LOW" then "SpiroDraw" will
- change to low resolution (320 x 200 screen).
- If the user selects "MEDIUM" then "SpiroDraw" will
- change to medium resolution (640 x 200 screen).
- If the user selects "HIGH" then "SpiroDraw" will
- change to high resolution (640 x 400 screen).
-
-
- III. A few words about "SpiroDraw"
- --------------------------------------
-
- The Guide Ring was, for the child's toy, the plastic ring with
- "gearing" on each side that was so hard to hold perfectly in place
- on the paper while winding the Drawing Wheel around the inside or
- outside of the Guide Ring. Even pinning the Guide Ring down through
- the paper onto cardboard was never much help either! "SpiroDraw"
- holds the Guide Ring in place quite nicely though. "SpiroDraw"
- always places the Guide Ring in the center of the screen.
-
- The Drawing Wheel was, for the child's toy, the plastic "wheel"
- with "gearing" (to mesh with the Guide Ring) that was so hard to keep
- engaged to the gearing of the Guide Ring while winding the Drawing
- Wheel around the inside or outside of the Guide Ring. If you went
- too slowly you would sometimes get "stuck" due to the "cam" effect
- of the pen-hole in the Drawing Wheel that you had chosen, especially
- if you chose a pen-hole way out near the edge of the Drawing Wheel!
- If you went too fast the the gearing between the Drawing Wheel and
- the Guide Ring would slip or disengage altogether and you would draw
- a nice ugly, frantic and ruinous line across your design! This was
- REALLY frustrating, especially if you were "almost done"... and only
- 6 years old! "SpiroDraw" will never know gear slips and getting
- stuck by the "cam" effect!
-
-
- The "Pen-Hole" was, for the child's toy, the little hole in the
- Drawing Wheel (there were lots of these little holes in each wheel)
- that you would put your pen into which would determine the "character"
- of the design - the holes closest to the center of the Drawing Wheel
- would produce "circular" designs (for "SpiroDraw", small values for
- the Pen-hole distance from the center of the Drawing Wheel), and the
- holes closest to the edges of the Drawing Wheel would produce very
- "spirally" designs (for "SpiroDraw", large values for the Pen-hole
- distance from the center of the Drawing Wheel). Note that "SpiroDraw"
- allows a distance for the Pen-hole which is larger than the radius of
- the Drawing Wheel but only within practical limits depending upon whether
- the 'current' screen resolution is LOW, MEDIUM or HIGH. You may go ahead
- and TRY putting a pen into a hole on the Drawing Wheel that is larger
- than the Drawing Wheel itself using the child's toy!
-
- IV. A "useful" way to use this program
- (depending on your definition of "useful")
- -----------------------------------------------
-
- Here is a neat little tidbit for using this program with a
- Paint package (if you would like to play with or animate any of
- your designs that you generate with this program):
-
- For DPaint, anyway, this works nicely...
-
- 1. Start up a "screen-saver" program "in the background"
- which is capable of saving a screen as an IFF file.
- I have used "PictSaver" by Preben Nielsen successfully.
-
- 2. Generate your design using the "screen" roundness
- choice during the "user input" routine. This choice
- is known to work for DPaint.
-
- 3. Once the design has finished being generated, execute
- whatever key sequence is required by the "screen saver"
- program you have and save the design as an IFF file.
-
- 4. Call up your Paint package and do whatever. I have
- had fun "rolling" my designs across the screen or
- "into the distance" or even using the design as a
- circular border for other brushes, etc. Be creative!
-
-
- The following history also appears verbatim as a comment
- at the top of the source program since virtually any significant
- change to the source will result in a significant change to the
- documentation and vice versa. Also, if you have this user doc
- and not the source, you can see any revision information and
- when it is/was implemented.
-
- Note that as of the first writing of this document
- (for SpiroDraw01), 94-02-17, this little program was
- only 3 days shy of its 10th birthday!
-
- Great advertising hook - "A DECADE IN THE MAKING!"
-
- PROGRAM REVISION HISTORY (in reverse chronological order)
- ----------------------------------------------------------------
- Added the option to Save the screen as an IFF file
- (if this capability is added to ACE) NOT YET!
- | Uploaded to AMINET as SpiroDraw06 94-06-16
- | Moved the "Set Data..." text gadgets back to the upper
- | and lower edges of the screen and lengthened the
- | slider gadgets in the HIRES screen. 94-06-03
- | Added SIZE back into DIM variables 94-06-03
- Uploaded to AMINET as SpiroDraw05 94-05-31
- Check for WB 2.x or WB 1.3 and if WB 1.3 make sure that
- arp.library exists in the user's LIBS: directory.
- Do not allow "Save","Load" and do not enable the
- "Ask Save" menu if WB 1.3 and no arp.library 94-05-28
- Re-enable "Connect Dots" if switching from "FINE"
- details selection to any other detail selection 94-05-28
- Uploaded to AMINET as SpiroDraw04 94-05-25
- Fixed HIGH to LOW/MEDIUM Drawing Wheel size scaling bug 94-05-25
- Cleaned up tracking of changed data and backup buffers 94-05-24
- Added "About" MENU item 94-05-24
- Squished Gadgets closer together in HIGH Resolution
- "Set Data" window 94-05-24
- Increased width of slider gadgets for HIGH resolution 94-05-24
- Moved "Random", "Last" from MENUs to "Set Data" window
- and re-positioned other GADGETS to accommodate them 94-05-23
- Changed window title from
- "Screen Res" to "Screen Resolution" 94-05-23
- Added " " between SpiroDraw and Data in Set Data window 94-05-23
- Moved "Set Detail" and "Screen Resolution" windows
- down 5 pixels 94-05-23
- Automatically add ".spd" to end of user load data file
- name if not specified by the user. 94-05-23
- Added Left-Mouse-Button-Click to interrupt design-draw 94-05-23
- Removed the cute spinning anim and replaced with % done 94-05-23
- Fixed a 'bug'. GADGETS were getting messed up with
- DIM g_msg$(8) SIZE 4
- changed to DIM g_msg$(8) 94-05-23
- Uploaded to AMINET as SpiroDraw03 94-05-20
- Finished debugging user break capability 95-05-18
- Compiled using latest version of ACE which fixed a bug 94-05-15
- Began debugging user-break capability 94-05-11
- Received first shareware $ from W. Hagan (thanks Bill!) 94-05-12
- Added ^C user-break capability to spiro_draw subroutine 94-05-11
- Added Declarations of variables 94-04-30
- Uploaded to AMINET as SpiroDraw02 94-03-13
- Rewrite Documentation for Menus and new features 94-03-13
- All the new stuff 94-03-13
- Added more robust file-handling 94-03-11
- Added more pretty-up code 94-03-11
- Added switches to ask to save data every time
- data is changed or to not ask and whether to show
- the little activity loop while design is drawn 94-03-11
- Added activity loop while design is being drawn 94-03-11
- Added memory buffer for 8 designs 94-03-11
- Added some more error handling and pretty-up code 94-03-10
- Added RANDOMIZATION of design parameters 94-03-09
- Debugged more GADGET code 94-03-09
- More GADGET coding 94-03-09
- Debugged new gadget code 94-03-08
- Coded "design size" parameters using GADGETs 94-03-08
- Coded "resolution" parameter using GADGETs 94-03-07
- Coded "detail" parameter using GADGETs 94-03-07
- Ask the user to draw immediately upon reading a .spd 94-03-07
- Added more robust File I/O error handling...
- ... could still use more 94-03-07
- Ability to choose (and now change) SCREEN resolution
- "pulled" into the main program 94-03-06
- MENU and code to Save/Load design parameters 94-03-04
- Added Dummy MENUs for Load and Save 94-03-04
- Added additional design types skeleton code and menus 94-03-04
- Replaced "hack" user inputs with MENU constructs
- This would enable the user to set up all the
- "design" parameters and change only those
- parameters desired while maintaining all the
- others (user doc changed too) 94-03-03
- UPLOADED to Aminet as SpiroDraw01 94-02-25
- Cleaned-up the plot loop, eliminated some "goto"s 94-02-21
- Cleaned up screen and window sizes, user input text 94-02-20
- Fixed new "revolutions" bugs (variable rvlv)
- introduced while cleaning-up the code 94-02-19
- Program now runs from WorkBench 94-02-17
- The user is now asked for "Pen-hole distance"
- before being asked "inside, outside, or both"
- This order seemed to be more logical after
- writing the documentation 94-02-17
- Finally wrote the documentation 94-02-17
- More refinement of programming constructs 94-02-16
- Refinement of programming constructs 94-02-15
- Revived from my AmigaBasic hacks and converted
- to ACE (great package, David Benn!) 94-02-14
- Converted from C-64 SIMON'S BASIC to AmigaBasic 87-11-20
- Program initiated and hacked into working order
- using SIMON'S BASIC for the Commodore 64 (tm) 84-02-20
-